<?php

echo '<br>Status Autorização '.date("d/m/Y")." - ".date("H:i:s").'<br>';

$dataVersao = array();
$erro = FALSE;

$nao_gerar = 0; 
$var_destino = "4,59,183,190,252";
$total_envio = 200;


 
// SADT
echo '<br><blink style="color:#F00">Verificação status SADT.</blink><br>';
$var_sql = "";
//$var_sql = " and tissdt_num in()"; 

$sql_todas_guias = "SELECT tissdt_num, tissdt_num_gui_pri, tissdt_tpo_gui_ori, tissdt_num_gui_ori, con_cod ,
                    tissdt_sta_rna, tissdt_num_crt, tissdt_nom_ben, tissdt_num_gui_prs, tissdt_cod_cto, tissdt_nom_cto, pac_cod 
                    FROM tissdt
                    WHERE tissdt_sta = 'E' 
                    AND tissdt_dat_emi_gui >= '01092014'
                    AND con_cod IN(" . $var_destino . ") 
                    AND tissdt_tpo_env = 'S' 
                    AND tissdt_tpo_gui_ori <> 'I'
                    AND tissdt_num_gui_prs > 0
                    " . $var_sql; 
$guia_todas = odbc_exec($bd_ingres, $sql_todas_guias); 
$count_envio = 0;
while(odbc_fetch_row($guia_todas) && $count_envio < $total_envio){ 
    $count_envio++;    

    try{
        
        $num_gui_pri = '';
        $tissdt_num = odbc_result($guia_todas, 'tissdt_num'); // uso 
        $tissdt_num_gui_pri = odbc_result($guia_todas, 'tissdt_num_gui_pri'); // uso 
        $tissdt_tpo_gui_ori = odbc_result($guia_todas, 'tissdt_tpo_gui_ori'); // uso 
        $tissdt_num_gui_ori = odbc_result($guia_todas, 'tissdt_num_gui_ori'); // uso 
        $tissdt_num_con_cod = odbc_result($guia_todas, 'con_cod'); // uso 
        $tissdt_sta_rna = trim(odbc_result($guia_todas, 'tissdt_sta_rna'));
        if(strlen($tissdt_sta_rna) == 0) $tissdt_sta_rna = 'N'; 
        $tissdt_num_crt = trim(odbc_result($guia_todas, 'tissdt_num_crt'));
        $tissdt_nom_ben = trim(odbc_result($guia_todas, 'tissdt_nom_ben'));
        $tissdt_num_gui_prs = trim(odbc_result($guia_todas, 'tissdt_num_gui_prs'));
        $tissdt_cod_cto = trim(odbc_result($guia_todas, 'tissdt_cod_cto'));
        $tissdt_nom_cto = trim(odbc_result($guia_todas, 'tissdt_nom_cto'));
        $pac_cod = trim(odbc_result($guia_todas, 'pac_cod'));
        
        $tipoTransacao = 'SOLICITA_STATUS_AUTORIZACAO';
        $dataRegistroTransacao = date("Y-m-d");
        $horaRegistroTransacao = date("h:i:s");
        $versaoPadrao = '3.02.00';
        $date_hora = date("hi");
        $data_date = date("dmY");//date("Y.m.d");
        $vrf_trn = rand(1, 10000);
        $CNPJ = "92021062000106";
        $destino = '319384';
        
        $sequencialTransacao = $tissdt_num;
        
        $dataVersao['cabecalho']['identificacaoTransacao']['tipoTransacao'] = $tipoTransacao;
        $hash = $tipoTransacao;

        $dataVersao['cabecalho']['identificacaoTransacao']['sequencialTransacao'] = $sequencialTransacao;
        $hash .= $sequencialTransacao;

        $dataVersao['cabecalho']['identificacaoTransacao']['dataRegistroTransacao'] = $dataRegistroTransacao;
        $hash .= $dataRegistroTransacao;

        $dataVersao['cabecalho']['identificacaoTransacao']['horaRegistroTransacao'] = $horaRegistroTransacao;
        $hash .= $horaRegistroTransacao;

        $dataVersao['cabecalho']['origem']['identificacaoPrestador']['CNPJ'] = $CNPJ;
        $hash .= $CNPJ;

        $dataVersao['cabecalho']['destino']['registroANS'] = $destino;
        $hash .= $destino;

        $dataVersao['cabecalho']['versaoPadrao'] = $versaoPadrao;
        $hash .= $versaoPadrao;


        $dataVersao['solicitacaoStatusAutorizacao']['identificacaoSolicitacao']['registroANS'] = $destino;
        $hash .= $destino;

        $dataVersao['solicitacaoStatusAutorizacao']['identificacaoSolicitacao']['numeroGuiaPrestador'] = $tissdt_num_gui_prs;
        $hash .= $tissdt_num_gui_prs;



        $dataVersao['solicitacaoStatusAutorizacao']['dadosBeneficiario']['numeroCarteira'] = $tissdt_num_crt;
        $hash .= $tissdt_num_crt;

        $dataVersao['solicitacaoStatusAutorizacao']['dadosBeneficiario']['atendimentoRN'] = $tissdt_sta_rna;
        $hash .= $tissdt_sta_rna;

        $dataVersao['solicitacaoStatusAutorizacao']['dadosBeneficiario']['nomeBeneficiario'] = $tissdt_nom_ben;
        $hash .= $tissdt_nom_ben;



        $dataVersao['solicitacaoStatusAutorizacao']['dadosContratado']['codigoPrestadorNaOperadora'] = $tissdt_cod_cto;
        $hash .= $tissdt_cod_cto;

        $dataVersao['solicitacaoStatusAutorizacao']['dadosContratado']['nomeContratado'] = $tissdt_nom_cto;
        $hash .= $tissdt_nom_cto;
                
                
        $dataVersao['hash'] = md5($hash);

        $xml = xml::arraytoXml($dataVersao, 'mensagemTISS');
        

        $estrutura = $funcoes->verificarDiretorios();
        $arq_xml_err = 'arquivos/xml_err/' . $estrutura . $tissdt_num . '.xml';
        $arq_xml_sta = 'arquivos/xml_sta/'     . $estrutura . $sequencialTransacao . '_env.xml';


        file_put_contents($arq_xml_sta, $xml);

        $xml = file_get_contents($arq_xml_sta);
        $xml = xml::xmlToArray($xml); // CUIDADO SE TIVER UM VALOR VAZIO - VAI O VALOR O TEXTO ARRAY, DESTA FORMA OCORRE ERRO
        $xml['hash'] = xml::hashToArray($xml); 


        $result = $clientSoap->tissSolicitacaoStatusAutorizacao($xml);


        $xml_arq = xml::objectToArray($result);
        //print_r($xml_arq);

        $arq_xml_sta = 'arquivos/xml_sta/'     . $estrutura . $sequencialTransacao . '_rtn.xml';

        $xml_arq = xml::arraytoXml($xml_arq, 'mensagemTISS');
        $xml_arq = xml::ajustaVersaoXml($xml_arq);
        file_put_contents($arq_xml_sta, $xml_arq); 

        $resultado = $retorno->Processamento($result,'SDT_STA_SEM');  
        
        @$senha = $result->situacaoAutorizacao->autorizacaoServico->dadosAutorizacao->senha;
        $msg = '<br>'.$count_envio.' - Guia: '.$tissdt_num.' - Senha: '.$senha.' - Guia Prest Unimed: '.$tissdt_num_gui_prs.' - Carteira: '.$tissdt_num_crt.' - Paciente: '.$pac_cod.' | Numero Transação: '.$sequencialTransacao;                    
              
        if($resultado == TRUE){
            if(strlen($senha) > 0){
                echo $msg = $msg.' - Processado retorno!<br>'; 
            }else{
                echo $msg = '<br>Erro: '.$result->situacaoAutorizacao->mensagemErro->descricaoGlosa.$msg.' - Erro não processado retorno!<br><br>';
                file_put_contents($arq_xml_err, $msg);
            }
            //file_put_contents($arq_xml_sta.'_sucesso', $msg);
            odbc_commit($bd_ingres);
        }else if($resultado == FALSE){
            odbc_rollback($bd_ingres);
            echo $msg .= ' - Erro não processado retorno!<br><br>';
            file_put_contents($arq_xml_err, $msg);  
        }  

        
       
    } catch (Exception $ex) {
        odbc_rollback($bd_ingres);
    }
}



//internação
echo '<br><blink style="color:#F00">Verificação status INT.</blink><br>';

// 2148944
$var_sql = "";
//$var_sql = " and tisint_num in( 2157476  )";


$sql_todas_guias = "SELECT tisint_num, con_cod ,
                    tisint_sta_rna, tisint_num_crt, tisint_nom_ben, tisint_num_gui_prs, tisint_cod_prf, tisint_nom_prf, pac_cod
                    FROM tisint
                    WHERE tisint_sta = 'E' 
                    AND tisint_dat_emi_gui >= '01092014'
                    AND con_cod IN(" . $var_destino . ") 
                    AND tisint_tpo_env = 'S' 
                    AND tisint_num_gui_prs > 0
                    " . $var_sql; 

$guia_todas = odbc_exec($bd_ingres, $sql_todas_guias); 
$count_envio = 0;
while(odbc_fetch_row($guia_todas) && $count_envio < $total_envio){ 
    $count_envio++;    

    try{
        
        $num_gui_pri = '';
        $tisint_num = odbc_result($guia_todas, 'tisint_num'); // uso 
        $tisint_num_con_cod = odbc_result($guia_todas, 'con_cod'); // uso 
        $tisint_sta_rna = trim(odbc_result($guia_todas, 'tisint_sta_rna'));
        if(strlen($tisint_sta_rna) == 0) $tisint_sta_rna = 'N'; 
        $tisint_num_crt = trim(odbc_result($guia_todas, 'tisint_num_crt'));
        $tisint_nom_ben = trim(odbc_result($guia_todas, 'tisint_nom_ben'));
        $tisint_num_gui_prs = trim(odbc_result($guia_todas, 'tisint_num_gui_prs'));
        $tisint_cod_prf = trim(odbc_result($guia_todas, 'tisint_cod_prf'));
        $tisint_nom_prf = trim(odbc_result($guia_todas, 'tisint_nom_prf'));
        $pac_cod = trim(odbc_result($guia_todas, 'pac_cod'));
        
        $tipoTransacao = 'SOLICITA_STATUS_AUTORIZACAO';
        $dataRegistroTransacao = date("Y-m-d");
        $horaRegistroTransacao = date("h:i:s");
        $versaoPadrao = '3.02.00';
        $date_hora = date("hi");
        $data_date = date("dmY");//date("Y.m.d");
        $vrf_trn = rand(1, 10000);
        $CNPJ = "92021062000106";
        $destino = '319384';
        
        $sequencialTransacao = $tisint_num;
        
        $dataVersao['cabecalho']['identificacaoTransacao']['tipoTransacao'] = $tipoTransacao;
        $hash = $tipoTransacao;

        $dataVersao['cabecalho']['identificacaoTransacao']['sequencialTransacao'] = $sequencialTransacao;
        $hash .= $sequencialTransacao;

        $dataVersao['cabecalho']['identificacaoTransacao']['dataRegistroTransacao'] = $dataRegistroTransacao;
        $hash .= $dataRegistroTransacao;

        $dataVersao['cabecalho']['identificacaoTransacao']['horaRegistroTransacao'] = $horaRegistroTransacao;
        $hash .= $horaRegistroTransacao;

        $dataVersao['cabecalho']['origem']['identificacaoPrestador']['CNPJ'] = $CNPJ;
        $hash .= $CNPJ;

        $dataVersao['cabecalho']['destino']['registroANS'] = $destino;
        $hash .= $destino;

        $dataVersao['cabecalho']['versaoPadrao'] = $versaoPadrao;
        $hash .= $versaoPadrao;


        $dataVersao['solicitacaoStatusAutorizacao']['identificacaoSolicitacao']['registroANS'] = $destino;
        $hash .= $destino;

        $dataVersao['solicitacaoStatusAutorizacao']['identificacaoSolicitacao']['numeroGuiaPrestador'] = $tisint_num_gui_prs;
        $hash .= $tisint_num_gui_prs;



        $dataVersao['solicitacaoStatusAutorizacao']['dadosBeneficiario']['numeroCarteira'] = $tisint_num_crt;
        $hash .= $tisint_num_crt;

        $dataVersao['solicitacaoStatusAutorizacao']['dadosBeneficiario']['atendimentoRN'] = $tisint_sta_rna;
        $hash .= $tisint_sta_rna;

        $dataVersao['solicitacaoStatusAutorizacao']['dadosBeneficiario']['nomeBeneficiario'] = $tisint_nom_ben;
        $hash .= $tisint_nom_ben;



        $dataVersao['solicitacaoStatusAutorizacao']['dadosContratado']['codigoPrestadorNaOperadora'] = $tisint_cod_prf;
        $hash .= $tisint_cod_prf;

        $dataVersao['solicitacaoStatusAutorizacao']['dadosContratado']['nomeContratado'] = $tisint_nom_prf;
        $hash .= $tisint_nom_prf;
                
                
        $dataVersao['hash'] = md5($hash);

        $xml = xml::arraytoXml($dataVersao, 'mensagemTISS');
        

        $estrutura = $funcoes->verificarDiretorios();
        $arq_xml_err = 'arquivos/xml_err/' . $estrutura . $tisint_num . '.xml';
        $arq_xml_sta = 'arquivos/xml_sta/'     . $estrutura . $sequencialTransacao . '_env.xml';


        file_put_contents($arq_xml_sta, $xml);

        $xml = file_get_contents($arq_xml_sta);
        $xml = xml::xmlToArray($xml); // CUIDADO SE TIVER UM VALOR VAZIO - VAI O VALOR O TEXTO ARRAY, DESTA FORMA OCORRE ERRO
        $xml['hash'] = xml::hashToArray($xml); 


        $result = $clientSoap->tissSolicitacaoStatusAutorizacao($xml);


        $xml_arq = xml::objectToArray($result);
        //print_r($xml_arq);

        $arq_xml_sta = 'arquivos/xml_sta/'     . $estrutura . $sequencialTransacao . '_rtn.xml';

        $xml_arq = xml::arraytoXml($xml_arq, 'mensagemTISS');
        $xml_arq = xml::ajustaVersaoXml($xml_arq);
        file_put_contents($arq_xml_sta, $xml_arq); 

        $resultado = $retorno->Processamento($result,'INT_STA_SEM');  
        
        @$senha = $result->situacaoAutorizacao->autorizacaoInternacao->autorizacaoDosServicos->dadosAutorizacao->senha;
        $msg = '<br>'.$count_envio.' - Guia: '.$tisint_num.' - Senha: '.$senha.' - Guia Prest Unimed: '.$tisint_num_gui_prs.' - Carteira: '.$tisint_num_crt.' - Paciente: '.$pac_cod.' | Numero Transação: '.$sequencialTransacao;                    
           
        
        if($resultado == TRUE){
            if(strlen($senha) > 0){
                echo $msg = $msg.' - Processado retorno!<br>'; 
            }else{
                echo $msg = '<br>Erro: '.$result->situacaoAutorizacao->mensagemErro->descricaoGlosa.$msg.' - Erro não processado retorno!<br><br>';
                file_put_contents($arq_xml_err, $msg);
            }
            //file_put_contents($arq_xml_sta.'_sucesso', $msg);
            odbc_commit($bd_ingres);
        }else if($resultado == FALSE){
            odbc_rollback($bd_ingres);
            echo $msg .= ' - Erro não processado retorno!<br><br>';
            file_put_contents($arq_xml_err, $msg);
        }  

        
       
    } catch (Exception $ex) {
        odbc_rollback($bd_ingres);
    }
}




// sadt internação 
echo '<br><blink style="color:#F00">Verificação status SADT da internação.</blink><br>';

$var_sql = "";
//$var_sql = " and tissdt_num in(2148944)"; 

$sql_todas_guias = "SELECT tissdt_num, tissdt_num_gui_pri, tissdt_tpo_gui_ori, tissdt_num_gui_ori, con_cod ,
                    tissdt_sta_rna, tissdt_num_crt, tissdt_nom_ben, tissdt_num_gui_prs, tissdt_cod_cto, tissdt_nom_cto, pac_cod
                    FROM tissdt
                    WHERE tissdt_sta = 'E' 
                    AND tissdt_dat_emi_gui >= '01092014'
                    AND con_cod IN(" . $var_destino . ") 
                    AND tissdt_tpo_env = 'S' 
                    AND tissdt_tpo_gui_ori = 'I'
                    AND tissdt_num_gui_prs > 0
                    " . $var_sql; 
$guia_todas = odbc_exec($bd_ingres, $sql_todas_guias); 
$count_envio = 0;
while(odbc_fetch_row($guia_todas) && $count_envio < $total_envio){ 
    $count_envio++;    

    try{
        
        $num_gui_pri = '';
        $tissdt_num = odbc_result($guia_todas, 'tissdt_num'); // uso 
        $tissdt_num_gui_pri = odbc_result($guia_todas, 'tissdt_num_gui_pri'); // uso 
        $tissdt_tpo_gui_ori = odbc_result($guia_todas, 'tissdt_tpo_gui_ori'); // uso 
        $tissdt_num_gui_ori = odbc_result($guia_todas, 'tissdt_num_gui_ori'); // uso 
        $tissdt_num_con_cod = odbc_result($guia_todas, 'con_cod'); // uso 
        $tissdt_sta_rna = trim(odbc_result($guia_todas, 'tissdt_sta_rna'));
        if(strlen($tissdt_sta_rna) == 0) $tissdt_sta_rna = 'N'; 
        $tissdt_num_crt = trim(odbc_result($guia_todas, 'tissdt_num_crt'));
        $tissdt_nom_ben = trim(odbc_result($guia_todas, 'tissdt_nom_ben'));
        $tissdt_num_gui_prs = trim(odbc_result($guia_todas, 'tissdt_num_gui_prs'));
        $tissdt_cod_cto = trim(odbc_result($guia_todas, 'tissdt_cod_cto'));
        $tissdt_nom_cto = trim(odbc_result($guia_todas, 'tissdt_nom_cto'));
        $pac_cod = trim(odbc_result($guia_todas, 'pac_cod'));
        
        $tipoTransacao = 'SOLICITA_STATUS_AUTORIZACAO';
        $dataRegistroTransacao = date("Y-m-d");
        $horaRegistroTransacao = date("h:i:s");
        $versaoPadrao = '3.02.00';
        $date_hora = date("hi");
        $data_date = date("dmY");//date("Y.m.d");
        $vrf_trn = rand(1, 10000);
        $CNPJ = "92021062000106";
        $destino = '319384';
        
        $sequencialTransacao = $tissdt_num;
        
        $dataVersao['cabecalho']['identificacaoTransacao']['tipoTransacao'] = $tipoTransacao;
        $hash = $tipoTransacao;

        $dataVersao['cabecalho']['identificacaoTransacao']['sequencialTransacao'] = $sequencialTransacao;
        $hash .= $sequencialTransacao;

        $dataVersao['cabecalho']['identificacaoTransacao']['dataRegistroTransacao'] = $dataRegistroTransacao;
        $hash .= $dataRegistroTransacao;

        $dataVersao['cabecalho']['identificacaoTransacao']['horaRegistroTransacao'] = $horaRegistroTransacao;
        $hash .= $horaRegistroTransacao;

        $dataVersao['cabecalho']['origem']['identificacaoPrestador']['CNPJ'] = $CNPJ;
        $hash .= $CNPJ;

        $dataVersao['cabecalho']['destino']['registroANS'] = $destino;
        $hash .= $destino;

        $dataVersao['cabecalho']['versaoPadrao'] = $versaoPadrao;
        $hash .= $versaoPadrao;


        $dataVersao['solicitacaoStatusAutorizacao']['identificacaoSolicitacao']['registroANS'] = $destino;
        $hash .= $destino;

        $dataVersao['solicitacaoStatusAutorizacao']['identificacaoSolicitacao']['numeroGuiaPrestador'] = $tissdt_num_gui_prs;
        $hash .= $tissdt_num_gui_prs;



        $dataVersao['solicitacaoStatusAutorizacao']['dadosBeneficiario']['numeroCarteira'] = $tissdt_num_crt;
        $hash .= $tissdt_num_crt;

        $dataVersao['solicitacaoStatusAutorizacao']['dadosBeneficiario']['atendimentoRN'] = $tissdt_sta_rna;
        $hash .= $tissdt_sta_rna;

        $dataVersao['solicitacaoStatusAutorizacao']['dadosBeneficiario']['nomeBeneficiario'] = $tissdt_nom_ben;
        $hash .= $tissdt_nom_ben;



        $dataVersao['solicitacaoStatusAutorizacao']['dadosContratado']['codigoPrestadorNaOperadora'] = $tissdt_cod_cto;
        $hash .= $tissdt_cod_cto;

        $dataVersao['solicitacaoStatusAutorizacao']['dadosContratado']['nomeContratado'] = $tissdt_nom_cto;
        $hash .= $tissdt_nom_cto;
                
                
        $dataVersao['hash'] = md5($hash);

        $xml = xml::arraytoXml($dataVersao, 'mensagemTISS');
        

        $estrutura = $funcoes->verificarDiretorios();
        $arq_xml_err = 'arquivos/xml_err/' . $estrutura . $tissdt_num . '.xml';
        $arq_xml_sta = 'arquivos/xml_sta/'     . $estrutura . $sequencialTransacao . '_env.xml';


        file_put_contents($arq_xml_sta, $xml);

        $xml = file_get_contents($arq_xml_sta);
        $xml = xml::xmlToArray($xml); // CUIDADO SE TIVER UM VALOR VAZIO - VAI O VALOR O TEXTO ARRAY, DESTA FORMA OCORRE ERRO
        $xml['hash'] = xml::hashToArray($xml); 


        $result = $clientSoap->tissSolicitacaoStatusAutorizacao($xml);


        $xml_arq = xml::objectToArray($result);
        //print_r($xml_arq);

        $arq_xml_sta = 'arquivos/xml_sta/'     . $estrutura . $sequencialTransacao . '_rtn.xml';

        $xml_arq = xml::arraytoXml($xml_arq, 'mensagemTISS');
        $xml_arq = xml::ajustaVersaoXml($xml_arq);
        file_put_contents($arq_xml_sta, $xml_arq); 

        $resultado = $retorno->Processamento($result,'SDT_STA_SEM');  
        
        @$senha = $result->situacaoAutorizacao->autorizacaoServico->dadosAutorizacao->senha;
        $msg = '<br>'.$count_envio.' - Guia: '.$tissdt_num.' - Senha: '.$senha.' - Guia Prest Unimed: '.$tissdt_num_gui_prs.' - Carteira: '.$tissdt_num_crt.' - Paciente: '.$pac_cod.' | Numero Transação: '.$sequencialTransacao;                    
             
        
        if($resultado == TRUE){
            if(strlen($senha) > 0){
                echo $msg = $msg.' - Processado retorno!<br>'; 
            }else{
                echo $msg = '<br>Erro: '.$result->situacaoAutorizacao->mensagemErro->descricaoGlosa.$msg.' - Erro não processado retorno!<br><br>';
                file_put_contents($arq_xml_err, $msg);
            }
            //file_put_contents($arq_xml_sta.'_sucesso', $msg);
            odbc_commit($bd_ingres);
        }else if($resultado == FALSE){
            odbc_rollback($bd_ingres);
            echo $msg .= ' - Erro não processado retorno!<br><br>';
            file_put_contents($arq_xml_err, $msg);
        }  

        
       
    } catch (Exception $ex) {
        odbc_rollback($bd_ingres);
    }
}

?>
